package com.devilvan.betrice.opgg.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.devilvan.betrice.opgg.dto.OpggHeaderDto;
import com.devilvan.betrice.opgg.po.OpggHeaderPo;
import com.devilvan.betrice.opgg.service.OpggHeaderService;
import com.devilvan.betrice.opgg.mapper.OpggHeaderMapper;
import com.devilvan.betrice.opgg.repository.OpggHeaderRepository;
import com.devilvan.betrice.util.UCopy;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import javax.annotation.Resource;
import java.sql.SQLException;
import java.util.List;

/**
 * @author Evad.Wu
 * @Description OPGG-基本信息 业务逻辑类
 * @date 2022-10-04
 */
@Service
public class OpggHeaderServiceImpl extends ServiceImpl<OpggHeaderMapper, OpggHeaderPo> implements OpggHeaderService {
    @Resource(name = "opggHeaderRepository")
    private OpggHeaderRepository opggHeaderRepository;

    @Override
    @Transactional(rollbackFor = {SQLException.class, ArithmeticException.class})
    public OpggHeaderPo saveUpdate(OpggHeaderDto opggHeaderDto) {
        OpggHeaderPo opggHeaderPo = new OpggHeaderPo();
        UCopy.fullCopy(opggHeaderDto, opggHeaderPo);
        return opggHeaderRepository.saveAndFlush(opggHeaderPo);
    }

    @Override
    @Transactional(rollbackFor = {SQLException.class, ArithmeticException.class})
    public List<OpggHeaderPo> saveUpdateBatch(List<OpggHeaderDto> list) {
        List<OpggHeaderPo> opggHeaderPoList = UCopy.fullCopyCollections(list, OpggHeaderPo.class);
        return opggHeaderRepository.saveAllAndFlush(opggHeaderPoList);
    }
}
